//
//  CZHomeViewController.swift
//  GZWeibo007
//
//  Created by Apple on 15/12/15.
//  Copyright © 2015年 Apple. All rights reserved.
//

import UIKit

class CZHomeViewController: CZBaseViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 没有登陆不做一下操作,直接返回
        if !CZUserAccount.userLogin {
            return
        }
        
        // 设置导航栏
        setupNav()
        
        // TODO: 测试加载微博数据
        // 不要在控制器里面来字典转模型
        //        CZNetworkTool.sharedInstance.loadStatus { (result, error) -> () in
        //            print("result: \(result)")
        //        }
        
        // 调用微博模型来加载微博数据(微博模型)
        CZStatus.mLoadStatus { (statuses, error) -> () in
            if error != nil {
                print("加载微博数据出错")
                return
            }
            
            print(statuses)
        }
    }
    
    /// 设置导航栏
    private func setupNav() {
        // 封装按钮3,使用扩展的便利构造函数
        // 导航栏左边
        navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_friendsearch")
        
        // 导航栏右边
        navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "navigationbar_pop")
        
        // 设置导航栏title
        // 三目运算符 bool ? 返回1 : 返回2
        // ??: `xx ?? yy`: 表示 ?? 前面可选如果有值,会强制拆包,并且返回这个值, ??前面可选没有值,会返回?? 后面的值
        let title = CZUserAccount.loadUserAccount()?.screen_name ?? "没获取到用户名"
        
        // 创建title按钮
        let titleButton = CZHomeTitleView(imageName: "navigationbar_arrow_down", title: title)
        
        // 添加点击事件
        titleButton.addTarget(self, action: "homeTitleButtonClick:", forControlEvents: UIControlEvents.TouchUpInside)
        
        navigationItem.titleView = titleButton
    }
    
    /// 标题按钮点击事件
    func homeTitleButtonClick(button: UIButton) {
        // 1.设置按钮的状态
        button.selected = !button.selected
        
        /*
        UIView动画旋转:
        1.就近原则.
        2.两边一样远会顺时针旋转
        */
        
        // 2. 根据按钮的选中状态来确定是旋转方向
        //        if button.selected {
        //            // 转上去
        //            UIView.animateWithDuration(0.25, animations: { () -> Void in
        //                button.imageView?.transform = CGAffineTransformMakeRotation(CGFloat(M_PI - 0.001))
        //            })
        //        } else {
        //            // 转下来
        //            UIView.animateWithDuration(0.25, animations: { () -> Void in
        //                button.imageView?.transform = CGAffineTransformIdentity
        //            })
        //        }
        
        // 抽取代码
        UIView.animateWithDuration(0.25) { () -> Void in
            // 根据按钮的选中状态来确定是旋转方向,如果按钮选中,转180°少一点,否则转到默认位置
            button.imageView?.transform = button.selected ? CGAffineTransformMakeRotation(CGFloat(M_PI - 0.001)) : CGAffineTransformIdentity
        }
    }
}
